package cc.rengu.redp.flowable.service;

import cc.rengu.redp.common.exception.RedpException;
import cc.rengu.redp.flowable.domain.CustomNodeVo;
import org.flowable.bpmn.model.BpmnModel;

import java.util.List;

/**
 * bpmn部署前相关的流程模型相关处理
 */
public interface SysWorkFlowModelService {

    /**
     * 获取指定模型的所有用户节点列表的扩展信息
     *
     * @param modelId 流程定义ID
     */
    List<CustomNodeVo> getCustomNodesByModelId(String modelId) throws RedpException;

    /**
     * 获取模型库中的流程定义PNG图片
     *
     * @param modelId
     * @return base64表示的图片内容
     * @throws RedpException
     */
    String getImageFromModel(String modelId) throws RedpException;

    /**
     * 部署前的工作
     * @param modelId
     * @return
     * @throws RedpException
     */
    BpmnModel beforeDeploy(String modelId) throws RedpException;
}
